// Constructor

#include <Eigen/Dense>
#include <iostream>

using namespace Eigen;

int main() {
  // - 默认构造
  Matrix3d a; // 3x3 double
  MatrixXf b; // 未定义尺寸矩阵构造 float

  // - 指定尺寸构造
  MatrixXf c(10, 15); // 指定尺寸矩阵构造
  std::cout << c.size() << std::endl;
  VectorXf d(30); // 未定义尺寸列向量构造

  Matrix3f e(3, 3); // 实例化固定尺寸矩阵时，传入尺寸参数，参数不起作用

  // - 传值初始化
  Vector2i aa(1, 2); // 2x1 Vector，传值初始化[1,2]
  std::cout << "Vector2i aa(1,2):\n" << aa <<std::endl;
  Matrix<int, 5, 1> bb{1, 2, 3, 4, 5};
  Matrix<int, 1, 5> cc = {1, 2, 3, 4, 5};

  VectorXd aaa{{1.5, 2.5, 3.5}};
  RowVectorXd bbb{{1., 2., 3., 4.}};
}